							%[导言区]
\documentclass[UTF8,a4paper,titlepage]{ctexart}

\usepackage[greek,english]{babel} %支持希腊语和英语
\usepackage[OT2, OT1]{fontenc} %支持少量俄文的西里尔字母
\usepackage{CJKfntef}
\usepackage{lettrine}
\usepackage{shapepar}
\usepackage[thmmarks]{ntheorem}
{	%利用分组，格式设置只作用于证明环境
	\theoremstyle{nonumberplain}
	\theoremheaderfont{\bfseries}
	\theorembodyfont{\normalfont}
	\theoremsymbol{证毕}
	\newtheorem{proof}{证明}
}
\usepackage{listings}
\usepackage{clrscode3e}
\usepackage{ctex}

\CTEXoptions[today = big]

\newcommand\Emph{\textbf}

\newsavebox\mybox %给盒子变量赋值，在文章中使用\usebox反复使用
	\sbox\mybox{text text}
\newsavebox\verbbox
	\begin{lrbox}
		\verbbox\verb|#$%^&{}|
	\end{lrbox}
\newcounter{chapter}
\setcounter{chapter}{1}

\newtheorem{thm}{定理}
\newtheorem{lemma}{引理}[chapter]
\newtheorem{prop}{命题}[thm]

\title{组织你的文本}
\author{徐皓玮 \\西北农林科技大学 \and 焦慧婧\\北京理工大学}
\date{\today}
							%[正文]
\begin{document}
	\maketitle
	\tableofcontents
	% 手工排版的标题页
	\begin{titlepage}
		\vspace*{\fill}
		\begin{center}
			\normalfont
			{\Huge \bfseries 组织你的文本}
			
			\bigskip
			{\Large \itshape 徐皓玮}
			
			\medskip
			\today
		\end{center}
		\vspace{\stretch{3}}
	\end{titlepage}
{\itshape
\section{从字母表到单词}
	\textgreek{abcde} %输入abcde的希腊文版
\section{正确使用标点}
	\subsection{引号的用途}
	“\,‘A’ or ‘B?’\,”he asked.
	\subsection{符号-的用途}
	An inter-word dash or, hyphen as in X-ray.
	
	A medium dash for number ranges, like 1--2
	
	A punctuation dash---like this.
	\subsection{省略号}
	Good: One, two, three\ldots
	
	Bad: One, two, three...
	\subsection{标准键盘上不能直接录入的标点符号}
	\# \quad \$ \quad \% \quad \& \quad
	\{ \quad \} \quad \_ \quad
	\textbackslash
	\subsection{空格与换行}
	This is    a short 
	sentence.   This is
	            another.%多个空格、单个换行均被看作一个空格
	            
	中文和English的混排效果
	并不依赖于 space 的有无
	
	幻影\phantom{参数}速速隐形
	
	幻影参数速速显形
	
	[2 - (3 + 5)] $\times$ 7 = 42
	
	[2 + (3 - 5)] $\times$ 7 = 0
}%斜体使用完毕
\section{字体}
	{\bfseries Bold font test}
	
	{\textit{Italic font test}%意大利斜体
	
	{\textup{Upright shape}
	
	{\textsl{Slanted shape}
	
	{\textsc{small capitals shape}
	
	{\textmd{Medium series}
	
	{\textbf{Bold extended series}
	\subsection{强调文字}
	You Should use fonts carefully.
	
	You \emph{should} use fonts carefully.
	
	You \Emph{should} use fonts carefully. %重定义新命令
	
	\underline{Emphasized} text and \underline{another}.
	
	\CJKunderdot{汉字，下加点}\\
	
	\CJKunderline{汉字，下划线}\\
	
	\CJKunderdblline{汉字，双下划线}\\
	
	\CJKunderwave{汉字，波浪线}\\
	
	\CJKxout{汉字，删除线}\\
	
	\CJKsout{汉字，又一个删除线}
	\subsection{字体}
		{\tiny \LaTeX}
		
		{\scriptsize \LaTeX
		
		{\footnotesize \LaTeX}
		
		{\small \LaTeX}
		
		{\normalsize \LaTeX}
		
		{\large \LaTeX}
		
		{\Large \LaTeX}
		
		{\LARGE \LaTeX}
		
		{\huge \LaTeX}
		
		{\Huge \LaTeX}
	\subsection{盒子}
		\mbox{cannot be broken}
		
		\makebox[1em]{\textbullet}text \\
		\makebox[5cm][s]{some stretched text} \\
		\makebox[0pt][l]{文字}word\\ %可以产生重叠效果
		%专门生成重叠效果
		语言文字\llap{word}\\
		\rlap{word}语言文字\\
		%产生带边框的盒子
		\fbox{framed}\\
		\framebox[3cm][s]{framed box}\\
		\setlength\fboxsep{0pt}
			\fbox{tight}\\
		\setlength\fboxsep{1em}
			\fbox{loose}\\
		\usebox\mybox \fbox{\usebox\mybox}\\
		\usebox\verbbox \fbox{\usebox\verbbox}
\section{段落与文本环境}
	%中文排版中常使用
	\setlength\parskip{0pt}
	\raggedright %右边界参差不齐
	English words\\
	like\\
	'technology'\\
	stem from a\\ 
	Greek root\\
	beginning\\ 
	with the letters\\
	tex\dots
	
	\begin{flushleft}
		左对齐
	\end{flushleft}

	\begin{flushright}
		右对齐
	\end{flushright}

	\begin{center}
		居中
	\end{center}

	%首字下沉效果
	\lettrine{T}{he} \TeX{} in \LaTeX{} refers to Donald Knuth's \TeX{} typesetting system.The \LaTeX{} program is a special version of \TeX{} that understands \LaTeX{} commands.
	
	\heartpar{
		绿草苍苍，白雾茫茫，有位佳人，在水一方。
		绿草萋萋，白雾迷离，有位佳人，靠水而居。
		我愿逆流而上，依偎在她身旁。无奈前有险滩，道路又远又长。
		我愿顺流而下，找寻她的方向。却见依稀仿佛，她在水的中央。
		我愿逆流而上，与她轻言细语。无奈前有险滩，道路曲折无已。
		我愿顺流而下，找寻她的足迹。却见仿佛依稀，她在水中伫立。}
\subsection{列表环境}
	\subsubsection{基本列表环境}
	\begin{enumerate}
		\item Chinese
		\begin{enumerate}
			\item 古代汉语
			\item 现代汉语
			\begin{enumerate}
				\item 口语
				\begin{enumerate}
					\item 普通话
					\item 方言
				\end{enumerate}
				\item 书面语
			\end{enumerate}
		\end{enumerate}
		\item English
		\item Francais
		\item Japaneses
	\end{enumerate}

	\begin{itemize}
		\item Chinese
		\item English
		\item Francais
		\item Japaneses
	\end{itemize}
\subsection{定理类环境}
	\begin{thm}[勾股定理]
		直角三角形斜边的平方等于两要的平方和。
	\end{thm}
	
	\begin{lemma}
		偏序集可良序化。
	\end{lemma}

	\begin{lemma}
		实数集不可数。
	\end{lemma}

	\begin{prop}
		直角三角形的斜边大于直角边。
	\end{prop}
	
	\begin{proof}
		证明是显然的。
	\end{proof}
	
	\subsection{抄录和代码环境}
		\begin{verbatim} %抄录
			#!usr/bin/env perl
			$name = "guy";
			print "Hello, $name!\n";
		\end{verbatim}
		
		\lstset{ % 整体设置
			basicstyle = \sffamily,
			keywordstyle = \bfseries,
			commentstyle = \rmfamily\itshape,
			stringstyle = \ttfamily,
			columns = flexible,
			numbers = left,
			numberstyle = \footnotesize}
		
		\begin{lstlisting}[language=C++]
			/* hello.cpp */
			#include <iostram>
			using namespace std;
			int main()
			{
				cout << "Hello." << endl;
				return 0;
			}
		\end{lstlisting}
		
		\subsection{tabbing环境}
		\begin{tabbing}
			格式\hspace{3em} \= 作者 \\
			Plain\TeX \> 高德纳 \\
			\LaTeX	   \> Leslie Lamport
		\end{tabbing}
	
		 \begin{codebox}
			 \Procname{$\proc{Insertion-Sort(A)}$}
			 \li \For $j \gets 2$ \To $\id{length}[A]$    \label{li:for}
			 \li     \Do $\id{key} \gets A[j]$            \label{li:for-begin}
			 \li         \Comment Insert $A[j]$ into the sorted sequence $A[1 \twodots j-1]$.
			 \li         $i \gets j-1$
			 \li         \While $i>0$ and $A[i]>\id{key}$ \label{li:while}
			 \li            \Do $A[i+1] \gets A[i]$       \label{li:while-begin}
			 \li                $i \gets i-1$             \label{li:while-end}
			                 \End
			 \li         $A[i+1] \gets \id{key}$          \label{li:for-end}
			         \End
			 \end{codebox}
		 
		 算法：在序列 $A$ 中对 $x$ 做二分检索 \\
		 输入：$A$, $x$ 及下标上下界 $L$, $H$ \\
		 \begin{codebox}
		 	\Procname{$\proc{BinSearch(A, x, L, H)}$}
		 	\li \While{ $L \leq H$ } \kw{do} 	\RComment $L$ 和 $H$ 是左右分点
		 	\li 	\Do $M \leftarrow \lfloor(L+H)/2\rfloor $ \RComment $M$ 是中间分点
		 	\li 		\kw{case}
		 	\li			\Do $x > A[M]: H \leftarrow M - 1$
		 	\li  			$x < A[M]: H \leftarrow M + 1$
		 	\li					 \Do \Do \Else$:j \leftarrow M$	\RComment 找到$x$，返回位置
		 	\li								\kw{retrun} $(j)$
		 					\End \End \End
		 	\li   			\kw{endcase}
		 		\End
		 	\li $j \leftarrow 0$
		 	\li \kw{retrun} $(j)$
		 \end{codebox}
	 
	 	算法示例：\\
	 	\begin{tabbing}
	 	 	$A = \{2, 3, 5, 7, 11\}$, $x = 3$\\
 	 		\qquad \=\+ $M$ \qquad \= $L$\qquad \= $H$\qquad \= \\
 	 					无		\> 1		\> 5			\> 初始值，进入循环 \\
 	 					3		 \> 1		 \> 2			 \> $H$ 变化 \\
 	 					2		 \> 无		\> 无		    \> 找到$x$，输出位置 2
	 	\end{tabbing}
\section{文档的结构层次}
	\subsection{标题和标题页}
	\subsection{划分章节}
\section{文档类与整体格式设计}
	\subsection{基本文档类和ctex文档类}
\end{document}